草庐IT

Java Spring MVC 模板引擎

全部标签

c++ - Variadic 模板元编程 : a bug in clang++ or g++?

考虑这种将数组从一种类型转换为另一种类型的疯狂的可变参数模板:#include#includetemplateclassConverter{public:template::type>staticconstexprconststd::arrayconvert(constArraysource,constTypes&...values);template::type>staticconstexprconststd::arrayconvert(constArray,constTypes...values);};templatetemplateconstexprconststd::array

c++ - TicTacToe 的求解引擎

我是一名初级程序员,我了解Pascal和C++的基础知识。我用Player-Computer制作了一个TicTacToe游戏,游戏全部完成。计算机会随机生成一个Os放在table上的位置,这并不好。我认为我应该使用多个程序来检查每个获胜位置,并且计算机应该尝试阻止玩家的Xs或做出获胜位置,但是由于所有的if,这会浪费很多时间。然后我想到了一个带有某种ifs的更简单的版本,但这样做仍然需要很多时间。然后我想得更深:找四局怎么样?在地球上,有人将如何设法检查每个可用空间,以及如何有人可以制作一个功能来检查玩家/计算机位置的任何获胜或进步,哦,等等,这还不是全部,如果播放器正在做一些技巧,所

c++ - C++98 标准在哪里指定对静态成员的调用何时依赖于模板?

使用Clang3.0-std=c++98编译,接受以下代码:templatestructI{typedefintType;};templatestructS{staticintf(int);//staticintf(int*);//implicitlyinstantiatesItypedefI::TypeType;};S::Types;取消注释'f'的重载会导致Clang报告错误“在依赖类型名称之前缺少'typename'”。G++4.8在有或没有重载的情况下报告相同的错误。无论有没有重载,msvc10都不会给出任何错误。标准在哪里说明'f'是否依赖并且'typename'是必需的?如

分布式搜索引擎面试题

1.说一下es的分布式架构原理/es是如何实现分布式的核心思想就是在多台机器上启动多个es进程实例,组成了一个es集群。创建一个index,index包含多个shard,每个shard都是一个最小工作单元,每个shard存储部分数据。一个shard的数据实际是有多个备份,就是说每个shard都有一个primaryshard,接受写和读请求,但是还有几个replicashard,负责容错,以及承担读请求负载。primaryshard写入数据之后,会将数据同步到其他几个replicashard上去。这样,每个shard的数据都有多个备份,如果某个机器宕机了,还有别的数据副本在别的机器上呢,这样就实

c++ - 从模板函数返回 double 或 complex<double>

我正在编写一些函数模板来重载*矩阵类的运算符。我用double类型的矩阵做了很多工作和complex.是否可以编写一个返回正确类型的模板函数?例如:templatematrixoperator*(constTa,constmatrixA){matrixB(A.size(1),A.size(2));for(intii=0;ii我想要返回类型V由T*U的自然结果决定.这可能吗?编辑:后续question我提出的问题收到的答案提供了适用于此处的额外信息。 最佳答案 在C++11中,您可以使用替代函数声明语法:#include//forde

c++ - 最烦人的 friend ?友化专门的自由函数模板会引发编译错误(重载方法时)

代码我将问题简化为这个例子(粘贴为一个block以便于编译)///\briefThefree-functiontemplate,///whichisoverloadingamethodwiththesamenameinAbstractAbelow.templateinlineconstToverloadedMethod(constT&lhs,constT&rhs){returnT(lhs.value+rhs.value);}///\briefAbstractAclassclassAbstractA{public:AbstractA(intaVal):value(aVal){}inlin

c++ - 是否可以在编译时检查类型是否派生自模板的某些实例化?

我想编写一个模板函数,如果传递的类型是从另一个类的任何模板实例派生的,则它以一种方式运行,否则以另一种方式运行。我认为下面的代码捕捉到了我想做的事情。不幸的是,Caller为double和Derived打印“generic”。#includetemplatestructBase{};structDerived:publicBase{};templatevoidFoo(constT&){std::coutvoidFoo(constBase&){std::cout"voidCaller(constT&t){Foo(t);}intmain(){doublex;Caller(x);Derive

C++ 模板比 int->unsigned 转换更好?

我有如下两个函数templateunsignedintmyFunction(Tmyelement){myelement->func();return2;}voidmyFunction(unsignedintmyelement){}我正在使用以下代码myFunction(2);visualstudio2012提示“int没有->func()”。为什么不使用unsignedint版本? 最佳答案 您误读了错误消息。编译器不使用该函数,而是实例化它以确定它是否是候选函数。您需要禁用不适合类型的实例化:templatetypenamestd

c++ - 如何为模板方法实现编译时 foreach()?

我想实现一个编译时的foreach(),它可以调用给定的模板成员函数N次。目前我有我的编译时间foreach:structForEach{templatestructIntToType{};typedefIntToTypeForEachDoNotTerminateLoop;typedefIntToTypeForEachTerminateLoop;templatestaticvoidForEachImpl(ForEachDoNotTerminateLoop,TMethodmethod){method.Invoke();ForEachImpl(Internal::IntToType(),m

c++ - 类模板的成员模板的成员模板的显式模板函数特化是否有效?

有谁知道这个显式特化是否有效:templatestructL{templatestructO{templatestaticvoidFun(U);};};templatetemplatetemplatevoidL::O::Fun(U){}clangtrunk(12/3/2013)给出以下错误:f:...\test.cpp:36:20:错误:类'O'中'Fun'的越界定义没有定义voidL::O::Fun(U){}~~~~~~~~~~~~~~^产生了1个错误。我们将不胜感激标准中的任何支持性引用以证明您的回答是正确的!注意:我有点惊讶这是一个错误-我希望为任何以.开始实例化“Fun”的模板